The Progress Bar and a Timer


The Progress Bar

The progress bar control is a simple control to inform the progress of some action to the user.
La barra de progreso es un control simple que permite informar el progreso de alguna acción al usuario.

Timer

A timer is used to periodically call a function that performs some actions. A program may have several timers. Each timer requires an ID and interval time in milliseconds.
Un timer es usado para llamar en forma periódica una función que realiza algunas acciones. Un programa puede tener varios timers. Cada timer requiere de un identificador ID y un intervalo de tiempo en milisegundos.

Problem 1
Create a program called Transfer that uses a progress bar to count the number of elapsed seconds.
Cree un programa llamado Transfer que use una barra de progreso que cuente el número de segundos transcurridos.

Step A
Create the project and use Wintempla to insert a progress bar and two buttons as shown. Double click anywhere outside the controls to edit the main window properties. Go the Events tab and mark the Timer event as shown.
Cree el proyecto y use Wintempla para insertar una barra de progreso y dos botones como se muestra. Haga clic doble en cualquier lugar afuera de los controles para editar las propiedades la ventana principal. Cámbiese a la pestaña de eventos y marque el evento Timer como se muestra.

TransferGui

TransferEvent

Step B
Edit the Transfer.cpp file as show.
Edite el archivo Transfer.cpp como se muestra.

TransferRun

Transfer.cpp
...

void Transfer::Window_Open(Win::Event& e)
{
     //________________________________________________________ pb1
     pb1.SetRange(1, 100);
     pb1.Position = 0;
}

void Transfer::btStart_Click(Win::Event& e)
{
     this->timer.Set(1, 1000); // Timer 1: every second
}

void Transfer::btStop_Click(Win::Event& e)
{
     this->timer.Kill(1);
}

void Transfer::Window_Timer(Win::Event& e)
{
     if (e.wParam == 1)
     {
          pb1.Position++;
          wchar_t text[32];
          _snwprintf_s(text, 32, _TRUNCATE, L"%d%%", pb1.Position);
          pb1.Text = text;
     }
}

© Copyright 2000-2021 Wintempla selo. All Rights Reserved. Jul 22 2021. Home